package com.wh.wisdomsite.xbox.ba.dao;

import com.baomidou.mybatisplus.mapper.BaseMapper;
import com.baomidou.mybatisplus.mapper.Wrapper;
import com.wh.wisdomsite.xbox.ba.entity.Role;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.session.RowBounds;
import org.springframework.stereotype.Repository;

import java.io.Serializable;
import java.util.List;
import java.util.Map;

/**
 * 角色DAO
 * @Package: com.wh.wisdomsite.xbox.us.dao
 * @author: 丁奕
 * @date: 2018-08-03 10:54
 * @Copyright 公司版权所有
 * @Company 贵州万华科技有限公司Copyright (c) 2016
 * @version V1.0
 **/
@Repository
public interface RoleMapper extends BaseMapper<Role> {

    /**
     * 获取完整信息的role
     * @param id
     * @return
     */
    Map<String, Object> getMapById(@Param(value="id")Serializable id);

    /**
     * 获取完整信息的role分页列表
     * @param var1
     * @param var2
     * @return
     */
    List<Map<String, Object>> getMapsPage(RowBounds var1, @Param("ew") Wrapper<Role> var2);


    /**
     * 根据总公司ID查询可用的所有角色list
     * @param companyId
     * @return
     */
    List<Map<String, Object>> selectListByCompanyId(@Param("companyId") Serializable companyId);

    /**
     * 根据用户ID查询所拥有的角色List
     * @param usId
     * @return
     */
    List<Role> getRoleListByUserId(@Param("usId") Serializable usId);

    /**
     * 根据角色名称及所属公司id查询对应的角色
     * @param roleName
     * @param compId
     * @param parentCompId
     * @param roId
     * @return
     */
    List<Role> getRoleListByNameAndCompId(@Param("roleName") String roleName,
                                          @Param("compId") String compId,
                                          @Param("parentCompId") Integer parentCompId,
                                          @Param("roId") String roId);
}
